package com.moss.cloud.common.core.utils;

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.moss.cloud.common.core.model.vo.AuthUser;

import java.util.List;

/**
 * 处理用户认证信息
 *
 * @author 瑾年
 * @date 2023年4月22日
 */
public class AuthUserUtil {
    /**
     * 处理用户认证信息
     *
     * @param userInfoString
     * @return
     */
    public static AuthUser preAuthUser(String userInfoString) {
        AuthUser authUser = new AuthUser();
        String userName = JSONObject.parseObject(userInfoString).getString("user_name");
        Long userId = JSONObject.parseObject(userInfoString).getLong("userId");
        Long tenantId = JSONObject.parseObject(userInfoString).getLong("tenantId");
        Long deptId = JSONObject.parseObject(userInfoString).getLong("deptId");
        List<Long> roleIds = JSON.parseArray(JSONObject.parseObject(userInfoString).getString("roleIds"), Long.class);
        List<String> roleCodes = JSON.parseArray(JSONObject.parseObject(userInfoString).getString("roleCodes"), String.class);
        authUser.setUserName(userName);
        authUser.setUserId(userId);
        authUser.setTenantId(tenantId != null ? tenantId : 0L);
        authUser.setDeptId(deptId != null ? deptId : 0L);
        authUser.setRoleIds(roleIds);
        authUser.setRoleCodes(roleCodes);
        authUser.setAuthStatus(Boolean.TRUE);
        return authUser;
    }

    /**
     * 处理未认证用户
     *
     * @return
     */
    public static AuthUser preAuthUser() {
        AuthUser authUser = new AuthUser();
        authUser.setAuthStatus(Boolean.FALSE);
        return authUser;
    }
}
